#define _CRT_SECURE_NO_WARNINGS 1

#include "Mystdio.h"
#include <unistd.h>

#define myfile "test.txt"

//值得注意的是：我们必须要模仿c语言库stdio，去写一个FILE结构体（即struct file),
//             因为：1._fopen/_fwrite/_fclose返回值都是FILE，并且open/write/close参数或返回值都只是涉及fd。必须把fd和FILE连接起来
//                  2.在语言层必须要有一个缓冲区，如果没有那么与系统层的交流次数会变多(通过系统接口），那么效率很低。

int main()
{
    _FILE* fp = _fopen(myfile, "a");      //第一个要实现的函数_fopen (参照fopen函数，包含open函数）
    if (fp == NULL) return 1;

    const char* msg = "hello world\n";
    int cnt = 10;
    while (cnt) {
        _fwrite(fp, msg, strlen(msg));    //第二个要实现的函数_fwrite (参照fwrite函数，包含write函数）
        // fflush(fp);
        sleep(1);
        cnt--;
    }

    _fclose(fp);                         //第三个要实现的函数_fclose (参照fclose函数，包含close函数）

    return 0;       
}
